// pages/sys/home/home.js

const app = getApp() // 获取应用实例
const util = require('../../../utils/util')
import { getBannerList, getNewsList, getInit } from '../../../utils/http/api'

Page({

    // 页面的初始数据
    data: {

        // 数据格式 { id: '', url: '', image: '',}
        banner_array: [],
        // 数据格式 { id: '', title:'' , image: '', createtime: '',}
        news: [],
        // 报修类型
        repair_type: ['水管故障', '电器故障', '门窗故障', '墙面故障', '地面故障', '其他问题'],
        // 协议和隐私弹窗提示内容
        content: '感谢您使用本软件。我们非常重视您的个人信息和隐私保护。为了更好的保护您的个人权益，请您务必审慎阅读以下协议和政策，点击“同意”即表示您已阅读并同意全部内容。'

    },

    // 点击查看右箭头更多新闻园区公告
    onMoreNews() {
        util.navigateTo('/pages/sys/news/news_list')
    },

    // 点击水费
    onMenu1() {
        //wx.showToast({ title: '敬请期待', icon: 'none', })
        //return
        if (util.isNull(app.gl.token)) {
            util.navigateTo('/pages/sys/login/login')
            wx.showToast({ title: '请先登录', icon: 'none', })
        } else {
            util.navigateTo('/pages/charge/w_charge/w_charge')
        }
    },

    // 点击电费
    onMenu2() {
        //wx.showToast({ title: '敬请期待', icon: 'none', })
        //return
        if (util.isNull(app.gl.token)) {
            util.navigateTo('/pages/sys/login/login')
            wx.showToast({ title: '请先登录', icon: 'none', })
        } else {
            util.navigateTo('/pages/charge/e_charge/e_charge')
        }
    },

    // 点击物业房租
    onMenu3() {
        // wx.showToast({ title: '敬请期待', icon: 'none', })
        // return
        if (util.isNull(app.gl.token)) {
            util.navigateTo('/pages/sys/login/login')
            wx.showToast({ title: '请先登录', icon: 'none', })
        } else {
            util.navigateTo('/pages/charge/house/pro_charge/pro_charge')
        }
    },

    // 点击招商政策
    onMenu4(e) {
        util.navigateTo('/pages/sys/bizz/bizz')
    },

    // 点击新闻列表item
    onNewsClick(e) {
        let that = this
        let index = e.currentTarget.dataset.index
        // console.log('index = ' + index)
        let id = this.data.news[index].id
        util.navigateTo('/pages/sys/web_detail/web_detail?id=' + id)
    },

    // 新闻图片加载失败
    onNewsImgErr(e) {
        let index = e.currentTarget.dataset.index
        let newsArr = this.data.news
        newsArr[index].image = '/assets/img_err.jpg'
        this.setData({ news: newsArr })
    },

    // onBannerImgErr  轮播图幻灯片图片加载失败
    onBannerImgErr(e) {
        let index = e.currentTarget.dataset.index
        let bannerArr = this.data.banner_array
        bannerArr[index].image = '/assets/img_err.jpg'
        this.setData({ banner_array: bannerArr })
    },

    // 请求获取幻灯片
    async reqBannerList() {
        wx.showLoading({ title: '处理中', mask: true, })
        // let token = util.isLogin()
        let { code, msg, data } = await getBannerList({ page: '1', limit: '999999', })
        // console.log(`reqBannerList...code=${code},msg=${msg},data=`, data)
        wx.stopPullDownRefresh()
        if (code == '1') {
            this.setData({ banner_array: data.data })
        } else {
            wx.showToast({ title: msg, icon: 'error' })
        }
    },

    // 请求获取通知公告、招商
    async reqNewsList() {
        wx.showLoading({ title: '处理中', mask: true, })
        // let token = util.isLogin()
        let { code, msg, data } = await getNewsList({ page: '1', limit: '999999', is_home: '1', type: '0', })
        // console.log(`reqNewsList...code=${code},msg=${msg},data=`, data)
        wx.stopPullDownRefresh()
        if (code == '1') {
            let list = data.data
            if (list) {
                list.map(item => {
                    return item
                })
            }
            this.setData({ news: list })
        } else {
            wx.showToast({ title: msg, icon: 'error' })
        }
    },

    // 初始化支付信息等 
    async reqInit() {
        let { code, msg, data } = await getInit({})
        // console.log(`reqInit...code=${code},msg=${msg},data=`, data)
        if (code == '1') {
            app.gl.wx_appsecret = data[1].value
        } else {
            console.log(`获取初始化信息错误:${msg}`)
        }
    },

    // 检查新版本 
    getNewVersion() {
        const updateManager = wx.getUpdateManager()
        updateManager.onCheckForUpdate(function (res) {
            // 检测到新版本的回调
            if (res.hasUpdate) {
                updateManager.onUpdateReady(res => {
                    // 新本版下载完成
                    wx.showModal({
                        title: '更新提示', content: '检测到新版本，是否重启小程序立即更新？',
                        success(res) {
                            if (res.confirm) {
                                // 新版本已下载好，调用applyUpdate应用新版本并重启
                                updateManager.applyUpdate()
                            }
                        }
                    })
                })

                updateManager.onUpdateFailed(res => {
                    console.log('新版本下载失败')
                })

            } else {
                // console.log('首页-暂无新版本')
            }
        })
    },

    // 查看用户协议和隐私政策
    on_check_privacy(e) {
        let id = e.target.dataset.id
        util.navigateTo(`/pages/sys/web_detail/web_detail?id=${id}&type=99`)
    },

    // 点击拒绝协议和政策
    on_no() {
        this.hide_privacy_dialog()
        wx.exitMiniProgram({})
        // wx.navigateBack({})
    },

    // 点击同意协议和政策
    on_ok() {
        this.hide_privacy_dialog()
        wx.setStorageSync('is_agree_privacy', 'ok')
    },

    // 显示弹窗
    show_privacy_dialog() {
        const dialog = this.selectComponent('#dialog')
        dialog.showPopup()
    },

    // 隐藏弹窗
    hide_privacy_dialog() {
        const dialog = this.selectComponent('#dialog')
        dialog.hidePopup()
    },

    // 生命周期函数--监听页面加载
    onLoad: function (options) {

        // 检查用户是否同意协议和政策
        let is_agree_privacy = wx.getStorageSync('is_agree_privacy')
        if (is_agree_privacy != 'ok') {
            this.show_privacy_dialog()
        }

        let token = wx.getStorageSync('token')
        if (!util.isNull(token)) {// 本地存储的token为空，未登录，直接返回
            app.gl.token = token// 为全局变量设置token 
        }

        this.reqInit()
        this.reqBannerList()
        this.reqNewsList()
    },

    // 生命周期函数--监听页面显示
    onShow: function () {
        this.getNewVersion()
    },

    // 页面相关事件处理函数--监听用户下拉动作
    onPullDownRefresh: function () {
        // wx.startPullDownRefresh()
        this.reqBannerList()
        this.reqNewsList()
    },

})